<!DOCTYPE html>
<html>

	<head>
		<meta content="application/xhtml+xml;charset=UTF-8" http-equiv="Content-Type">
		<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
		<title>我的速运-注册</title>

		<link rel="stylesheet" type="text/css" href="css/styleloginsign.css">
		<link rel="stylesheet" type="text/css" href="css/bootstrap/bootstrap.min.css">

		<script type="text/javascript" src="js/jquery.min.js"></script>
		<script type="text/javascript" src="js/bootstrap.min.js"></script>
		<script type="text/javascript" src="js/self/effect.js"></script>

		<!--导入angularJS-->
		<script src="js/angular.min.js" type="text/javascript" charset="utf-8"></script>

	</head>

	<body>
		<!--head-->
		<div class="loginnav">
			<nav class="navbar navbar-default">
				<div class="container">
					<div class="navbar-header">
						<a class="navbar-brand" href="#"><img src="images/icon/logo.png"></a>
						<span class="logintitle">用户注册</span>
					</div>

				</div>

			</nav>
		</div>
		<div class="container">
			<!--mainsignup-->
			<section class="mainsign">

				<div class="headnav">

				</div>

				<!--添加AngularJS模块入口和控制器-->
				<div class="signup" ng-app="signupApp" ng-controller="signupCtrl">
					<div class="col-md-9 signupbox">
						<form class="form col-md-6" id="customerForm" action="customer_regist.action" method="post">
						<!--为页面元素添加name属性，设置表单提交路径，提供id属性-->
							<div class=" form-group">
								<label for="inputaccount" class="col-sm-3 control-label"><b>*</b>手机号</label>
								<div class="col-sm-8">
									<input type="text" name="telephone" ng-model="telephone" class="form-control" id="inputaccount" placeholder="请输入手机号">
								</div>
							</div>

							<div class="form-group">

								<label for="inputaccount" class="col-sm-3 control-label"><b>*</b>验证码</label>

								<div class="col-sm-5">
									<input type="text" class="form-control" name="checkCode" id="inputaccount" placeholder="请输入验证码">
								</div>

								<div class="col-sm-3 song">
									<!--给获取验证码按钮添加点击事件-->
									<!--使用angularJS视图ng-bind将按钮文字绑定到作用域的btnMsg属性上-->
									<!--将存有手机号的模型属性值model传入getCheckCode方法-->
									<a class="btn btn-default" ng-click="getCheckCode(telephone)" ng-bind="btnMsg"></a>
								</div>

							</div>
							<div class="form-group">
								<label for="inputaccount" class="col-sm-3 control-label"><b>*</b>密码</label>
								<div class="col-sm-8">
									<input type="password" name="password" class="form-control" id="inputaccount" placeholder="6-16位数字或英文字母">
									<p class="text-right grey">安全强度：*****</p>
								</div>

							</div>

							<div class="form-group">
								<label for="inputaccount" class="col-sm-3 control-label"><b>*</b>确认密码</label>
								<div class="col-sm-8">
									<input type="password" class="form-control" id="inputaccount" placeholder="6-16位数字或英文字母">
								</div>
							</div>
							<div class="form-group">
								<label for="inputaccount" class="col-sm-3 control-label"><b>*</b>绑定邮箱</label>
								<div class="col-sm-8">
									<input type="email" class="form-control" name="email" id="inputemail" placeholder="请输入需要绑定的邮箱">
								</div>
							</div>
							<div class="form-group">
								<div class="col-sm-offset-3 col-sm-8 song">
									<div class="checkbox">
										<label>
      <input type="checkbox"> 查看并同意<a href="#"> 《速运快递服务协议》</a>
    </label>
									</div>

								</div>
							</div>
							<div class="form-group signbtn">
								<div class="col-sm-offset-3 col-sm-8 song">
									<a class="btn btn-danger" href="javascript:$('#customerForm').submit();">注册</a>
								</div>
							</div>

						</form>

					</div>
					<div class="col-md-3 introbox">
						<div class="signintro">
							<h5 class="redtext">注册成为速运会员，您可以享受更多的服务！</h5>
							<ul>
								<li class="list-group">积分奖励，电子运单专享特权</li>
								<li class="list-group">快速理赔，保价优惠</li>
								<li class="list-group">大陆偏远地区附加费减免</li>
								<li class="list-group">快件路由订阅，快件信息管理，批量下单</li>

							</ul>
						</div>

					</div>
				</div>
			</section>

		</div>

		<!--foot-->
		<footer>
			<section class="copyright size12">
				<div class="container">
					<p class="text-center">地址：北京市昌平区建材城西路金燕龙办公楼一层 邮编：100096 电话：400-618-4000 传真：010-82935100 </p>
					<p class="text-center">京ICP备08001421号京公网安备110108007702</p>
				</div>
			</section>
		</footer>

	</body>
	<script type="text/javascript">
		//初始化模块
		var signupApp = angular.module("signupApp", []);

		//定义控制器
		signupApp.controller("signupCtrl", ["$scope", "$http", function($scope, $http) {

			//给视图赋值
			$scope.btnMsg = "发送验证码";

			//定义一个标记用于切换模型视图
			var active = true; //active为true可以点击发送验证码按钮

			//定义倒计时事件
			var second = 60; //倒计时60秒

			//定义定时器
			var secondInterval;

			//定义获取验证码函数
			$scope.getCheckCode = function(telephone) {
				
				//判断发送验证码按钮是否可以点击
				if(active == false) {
					//不允许发送验证码
					return;
				}
				
				//1.发送一个HTTP请求，通知服务器发送端星给目标用户
				//通过正则表达式校验手机号
				var regex = /^1(3|5|7|8)\d{9}$/;
				
				if(regex.test(telephone)) {
					/*Angular HTTP编程：可以使用内置的$http服务直接同外部进行通信，
					他封装了浏览器原生的XMLHttpRequest*/

					/*$http服务只能接受一个参数的函数，这个参数是一个对象，包含了用来生成HTTP请求的配置内容。
					 * 这个函数返回一个promise对象，具有success和error两个方法*/
					$http({
						method: 'GET',
						url: 'customer_sendSms.action', //因为没有二级目录，所以可以直接写action名称
						params: {
							telephone: telephone
						}
					}).error(function(data, status, heders, config) {
						//当响应以错误状态返回时调用
						alert("发送端星出错，请联系管理员！");
					})
				}else{
					//校验失败
					alert("手机号非法，请重新输入");
					return;
				}

				//2.显示倒计时按钮，60秒后允许重新发送
				active = false;
				//定义计时器函数
				secondInterval = setInterval(function() {
					//判断剩余时间
					if(second < 0) {
						//倒计时结束，允许重新发送
						$scope.btnMsg = "重新发送验证码";

						//强制更新视图（否则倒计时效果不会自动更新）
						$scope.$digest();

						//修改计时器标记为允许点击
						active = true;

						//重新设置倒计时长
						second = 60;

						//即使结束后关闭计时器
						clearInterval(secondInterval);
						secondInterval = undefined;
					} else {
						//继续计时
						$scope.btnMsg = second + "秒后重发";

						//强制更新视图
						$scope.$digest();

						//剩余时长减1
						second--;
					}
					//设置视图更新时间为1秒
				}, 1000);
			}
		}]);
	</script>

</html>